Rip's Domain

jQuery 1.1.2 has been released

Posted in Jquery by rip747 on February 28, 2007

directly from the jQuery blog:

  1. Change: Event handlers (like element.onclick) are now removed when no more functions are bound to the event.
  2. Fixed: DOM Manipulations for form elements.
  3. Fixed: jQuery.isFunction to return false on nodes.
  4. Fixed: jQuery.className.has, escaping regex characters in className (for metadata)
  5. Fixed: an issue in IE where an event on a cloned element is fired during a .clone() inside of an event handler.
  6. Fixed: IE ID selectors selecting by the name attribute.
  7. Changed: Events are now internally stored in elem.$events rather than elem.events (due to a nasty bug relating to DOM 0 expandos).
  8. Changed: .attr('href') is now consistent in all browsers.
  9. Changed: @href is now consistent in all browsers.
  10. Fixed: the slideDown flickering bug.
  11. Fixed: Having a \r endline in $("...") caused a never-ending loop.
  12. Fixed: IE6 AJAX memory leak
  13. Fixed: bug in pushStack, reporting an element at [0] in a jQuery object with length 0

Go get it!!!!!

Something stupid: Top 5 lightsaber duels on YouTube.

Posted in Jokes by rip747 on February 25, 2007

UPDATE 2: Now this happens to blow every other video on this list away. The choreography in this movie is amazing.

UPDATE: I didn’t even realize it at the time, but the guy from video 2 & 1 are both Ryan Weiber. I also found out that on March 1, 2007 there will be a sequeal to Ryan Vs. Dorkman!

I can’t think of a better waste of time then browsing around YouTube and looking at videos. Sometimes I get into a theme during my browsing and looking for videos that include that theme. The other day I was into lightsaber duels after watch Star Wars late at night on HBO.

I came across some cool and so not so cool ones. The ones that I thought were good, I decided to throw into a list. Leave some comments about what you think and links to any other ones that you find.

5. a short video and probably the only thing that’s letting it make it into this list is the fact that it shows the dark lightning attack.

4. not the greatest by far, but again the only reason I can think of to put it on the list is the fact that there are 10 people that fight in this one. If you watch closely you can see SEVERAL times during the battle where they screw up the lightsaber hits. Worth the watch anyways.

3. A French made one. Although I couldn’t understand a word they were saying, the battle was OK. Better than the last two, but still not as good as the next two.

2. Excellent battle and death at the end. Can’t tell you why the death at the end is so great, but you’ll find out.

1. This has been all over the net. To the point where it has gotten hijacked by Ebaum’s World (I wouldn’t even dream of linking to that site). I can’t believe that these students were able to put together such a professional looking video. To be honest I think this battle is better then most of the battles I’ve seen in the Star Wars movies themselves. Great going guys, you earned the number one spot of my list.

Excellent, easy instructions for upgrading the JVM

Posted in ColdFusion by rip747 on February 24, 2007

Over at Stillnet Studios are excellent and easy to follow insturctions for updating the JVM in ColdFusion. Remember that you need to do this by March 11th or you’re screwed.

jQuery and YUI Ext to partner

Posted in Jquery by rip747 on February 20, 2007

Here is the official press release:
jQuery & Ext Partner to Deliver Integrated JavaScript & UI Features  For immediate release  BOSTON, Massachusetts— February 19, 2007

The most mature User Interface library for web applications will soon support jQuery, the two projects announced today.

Ext, a group of renowned User Interface components including a tree view, live grid, dual-panel layout among others, previously worked as an extension to the YUI library. Beginning with version 1.0 of Ext, it will work as an extension to jQuery as well, allowing jQuery users to leverage the power of the user interface tools available in Ext with the lightweight core library and expressive syntax of the best library for unobtrusive DOM scripting.

“We’re really excited by this collaboration. Ext is a fantastic library, and being able to provide it as an official jQuery Plugin is a huge win for everyone involved,” said John Resig, the creator of the jQuery JavaScript library.

The difficulty of combining functionality from multiple libraries has long forced new JavaScript developers to make difficult choices between User Interface tools and the core language itself. This collaboration will eliminate the need to make that tough choice. The jQuery library combined with Ext as an official plugin is a blockbuster combination of tools that will make rapid JavaScript and Ajax development in the context of desktop-like UIs possible.

What follows are the answers to common questions about the partnership:

What prompted the collaboration?

Ext has some fantastic components – arguably, the best on the web.

jQuery has all the core functionality to support what Ext provides, with a far smaller core file-size than YUI. The jQuery team contacted Jack Slocum with the hopes that we could work together to make Ext work with jQuery, and Jack wholeheartedly agreed. It’s a win-win situation: jQuery gets some awesome components, and Ext gets a huge influx of new users.

What are the benefits for jQuery and Ext users?   jQuery users get a huge number of expertly-designed components that they will be able to deploy immediately. Additionally, they’ll be able to use them in a manner that better suits the jQuery philosophy (e.g. leveraging jQuery’s unobtrusive philosophy, being able to call Ext queries on sets of elements, chaining calls, etc.) Additionally, jQuery is also investigating the possibility of supporting the use of DomQuery, Ext’s selector engine, as an alternative to jQuery’s CSS Selector code.

At the same time, existing Ext users will gain the flexibility of being able to continue to use Ext’s professional caliber components while leveraging the lightweight, small (~19k) and powerful jQuery framework.

How will the two teams work together?

After the first beta release of Ext 1.0, jQuery will be providing a strike team which will work to iron out all the integration points in Ext. At the same time, Jack will be working to isolate all the remaining YUI code, making it easier for us to finish the conversion process. All of this will be in place for Ext’s 1.0 release, which will support both YUI and jQuery.

How will support be handled?

The jQuery team will be providing support for any bugs that may only exist in the jQuery version of Ext.   Support for Ext will continue to be handled via the Ext forums. The Ext project will also begin offering a level of paid support for corporate users.

What Ext features will be included in Ext 1.0 for jQuery?

We expect all existing Ext features to be available in the version of Ext available as a jQuery plugin. The feature list is still being finalized.

When will Ext 1.0 for jQuery be available?

The final release date is still being finalized and we will make a formal announcement on the jQuery blog, the jQuery mailing list, the Ext project site and the Ext forums once the its ready to go.

Are there any changes to jQuery’s license since Ext will also include a commercial version?

No. jQuery’s license will remain the same since Ext 1.0 is going to be completely open source (LGPL). However, corporations can opt to purchase a Ext support license for $400/year. This will include email support and SVN access. This support license will include support for jQuery’s version of the Ext components.

jQuery licensing information can be found here: http://docs.jquery.com/Licensing

Ext licensing information can be found here:  http://www.yui-ext.com/forum/viewtopic.php?t=2737

About the jQuery Project

jQuery is a fast, concise, open source JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. Led by John Resig, the jQuery project aims to provide an easy, yet powerful library for building engaging and unobtrusive web applications.

jQuery is currently in use at top organizations including MSNBC, Intuit, and SourceForge.

For more information, visit www.jquery.com

Another day in the mortgage industry

Posted in Jokes by rip747 on February 16, 2007

If you think that we have it bad in the tech industry, read this.

Bob calls Charles on his cell phone:

Bob: Charles… where are you re-submitting the Hallinan file?

Charles: I already submitted it to Silver State Mortgage yesterday.

Bob: I know… but where are you re-submitting it?

Charles: What the fuck are you talking about Bobby?

Check out this website and you will see what he is talking about:

www.ssmwholesale.com

Any good offline validators?

Posted in ColdFusion, Design by rip747 on February 15, 2007

Since I’m reworking our main website at work in XHTML Strict, I need to validate every single page on the site to make sure I havn’t missed anything. With over 6500 generated pages, it get to be a bit much using the W3c validator, so I’m wondering what other people do out there to validate their web sites.

What I need is a program that will work on my local machine so I can point it to http://127.0.0.1:8500 (I’m using the developer version of CFMX7). Then it will spider every page on the site and give me a report on what it finds.

Obviously I would like a free tool if one exists, but I don’t mind paying for a good one since I will be using this for my peronal use as well.

my XHTMLParagraphFormat update

Posted in ColdFusion by rip747 on February 15, 2007

As a saving point for myself, I though I would just make a post out of this update.

XHTMLParagraphFormat – converts all single returns into “<br/>” and all double returns into “<p>”. Can handle embedded markup (great for unsorted lists).

<!— XHTMLParagraphFormat —>
<cffunction name=”XHTMLParagraphFormat” access=”public” returntype=”Any” _returntype=”string” output=”false”
hint=”takes a string an converts it into valid XHTML 1.0 Strict markup”>
<cfargument name=”string” default=”” required=”false” type=”Any” _type=”string”>
<cfset var Local = StructNew()>
<!— return string —>
<cfset Local.string = “”>
<!— remove trailing and leading whitespace —>
<cfset arguments.string = trim(arguments.string)>
<!— All double hard returns with become <p> —>
<cfset arguments.string = ReplaceNoCase(arguments.string, “#Chr(13)##Chr(10)##Chr(13)##Chr(10)#”, “^”, “ALL”)>
<!— All single hard returns will become <br/> —>
<cfset arguments.string = ReplaceNoCase(arguments.string, “#Chr(13)##Chr(10)#”, “~”, “ALL”)>
<!— single hard returns followed by a “<” are usually embedded markup —>
<cfset arguments.string = ReplaceNoCase(arguments.string, “~<“, “^<“, “ALL”)>
<!— make grouped “^” into a single one —>
<cfset arguments.string = ReReplaceNoCase(arguments.string, “\^{2}”, “^”, “ALL”)>
<!— split into an array for wrapping —>
<cfset arguments.string = ListToArray(arguments.string, “^”)>
<!— loop through the array —>
<cfloop from=”1″ to=”#ArrayLen(arguments.string)#” index=”Local.i”>
<!— remove trailing and leading whitespace —>
<cfset arguments.string[Local.i] = trim(arguments.string[Local.i])>
<!— convert all single return into <br/> —>
<cfset arguments.string[Local.i] = ReplaceNoCase(arguments.string[Local.i], “~”, “<br/>”, “ALL”)>
<!— if it isn’t a tag —>
<cfif Left(arguments.string[Local.i], 1) NEQ “<“>
<!— wrap in <p></p> —>
<cfset arguments.string[Local.i] = “<p>” & arguments.string[Local.i] & “</p>”>
</cfif>
<!— combine for return —>
<cfset Local.string = Local.string & arguments.string[Local.i]>
</cfloop>
<cfreturn Local.string>
</cffunction>

If you have any other ideas for this, just leave a comment below.

jdMenu for jQuery saves time

Posted in Jquery by rip747 on February 11, 2007

If you’re reading this blog, then you’re either a web designer or a programmer, so it’s safe to assume that at some point in your career you have had to do a navigation menu. Way back when, adding a navigation menu to a site was a pain in the neck and took a long time. The whole reason was that JavaScript just wasn’t what it was today about 5 years ago and finding any sort of premade plugin was a crap shoot. Sure there were some people that would “roll their own”, the purists as I call them, but I just don’t have the time to sit there a fight with browser inconstancies and hacks to get the menu to work.

Way back in 2000 when I originally redesigned sheriff.org. I used a menu system that I got from some JavaScript download site as a starting point. It was hard to use, hard to configure, hard to style, it sucked. It took me about 3 days to get the thing working the way I wanted it to. I never wanted to do something like that again. The menu used tables (yuk!) to do the navigation and a bunch of hacks to get it to lay in properly within IE5.5.

Fast forward about 6 years: Sheriff.org is getting a face lift and a big clean up. The original layout was done in tables and for this rework, I wanted to use pure CSS and XHTML Strict. Well I’m happy to say that the rework is almost finished and I thought I share with you how I use jQuery and jdMenu to a menu in about 10 minutes. It’s not completely done, since I’m waiting for the designer to give me the rollover images, but you’ll get the idea.

First here is an excerpt of the mark up for my menu. I’m not going to post the whole thing as it isn’t need for you to get the idea. The excerpt goes with the screen shots to follow:

<ul id=”navigationmenu”>
<li>
<a id=”NM1″ href=”/about_bso/index.cfm” title=”Inside BSO”><span>Inside BSO</span></a>
<ul>
<li class=”daddy”>
<a href=”/about_bso/dle/”>Law Enforcement</a>
<ul>
<li><a href=”/about_bso/dle/districts”>District Offices</a></li>
<li><a href=”/about_bso/dle/units”>Special Units</a></li>
<li><a href=”/apps/missingpersons”>Missing Persons</a></li>
<li><a href=”/about_bso/other/most_wanted/”>Most Wanted</a></li>
<li><a href=”/about_bso/dle/comm”>Communications / 911</a></li>
<li><a href=”/about_bso/dle/civil”>Civil Division</a></li>
<li><a href=”/about_bso/dle/command”>Command Staff</a></li>
<li><a href=”/about_bso/dle/explorers”>BSO Law Enforcement Explorers</a></li>
</ul>
</li>

Nothing big, just an unsorted list with sub lists to make up the menu. You notice that I give the top menu element an ID and wrapped the text within the anchor tag within a span tag. This is so I can use jQuery to substitute the text in the anchor tag with an image. It’s a little more mark up, but fully cross browser compatible and real easy to do.

The “li” with the class of “daddy” are sub menus that have sub menus (you’ll see in the screen shot). The “daddy” class is used to give these items a small arrow next to them to tell the visitor that there are more links.

Here is a screen shot of what the menu looks like after using jQuery to substitute the anchor text with images:

menu

Now that we have that working, we will use jdMenu with jQuery to form the rest of the menu. All we have to do is include 2 lines of javascript in our HEAD section to get jdMenu working.

<script type=”text/javascript” src=”/_files/js/jdmenu/jquery.dimensions.js”></script>
<script type=”text/javascript” src=”/_files/js/jdmenu/jquery.jdMenu.js”></script>

After we’ve include jdMenu, the next step is styling the menu with some CSS:

#navigationmenu
{
position:absolute;
margin:85px 0px 0px 15px;
list-style-type:none;
z-index:100;
font-size:11px;
line-height:13px;
}

#navigationmenu li
{
float:left;
margin:0px 7px 0px 0px;
}

#navigationmenu a span
{
display:none;
}

#navigationmenu ul
{
display: none;
}

/* — Sub-Menus Styling — */
#navigationmenu ul
{
position: absolute;
display: none;
list-style-type: none;
margin: -2px 0px 0px 4px;
padding: 0px;
border: 1px solid #9f896b;
background:#9f896b;
cursor:pointer;
}
#navigationmenu ul li
{
float: none;
margin: 0px;
padding: 3px 10px 3px 4px;
width:175px;
color: #000000;
background-color: #c1af96;
border-top: 1px solid #9f896b;
border-bottom: 1px solid #9f896b;
display:block;
}
#navigationmenu ul li.jd_menu_hover
{
background-color: #f1e8d2;
}

#navigationmenu ul a
{
text-decoration:none;
color:#000000;
}

#navigationmenu li.daddy
{
background: #c1af96 url(/newimages/smallarrow.gif) no-repeat right center;
}

After using jdMenu, jQuery and a little CSS, our menu now look like this when you mouse over the “Inside BSO” image:

jdMenu

By using jQuery and jdMenu, I saved myself a ton of time, the menu is easy to add to and manage and degrades nicely if someone with an older browser comes to the page.

Hopefully this post seduced you into checking out the awesome plugins available to jQuery.

Using jQuery to over come the shortsomings of XHTML

Posted in Jquery by rip747 on February 9, 2007

Who would have ever have know that you couldn’t do a target=”blank” on an anchor tag with XHTML Strict? I didn’t and this caught me by surprise. I haven’t a clue why the w3c even thought to do this. I think that the target attribute is probably the most useful attribute in the HTML language.

Anywho, this really isn’t a problem since I use jQuery! By using the power of jQuery you can overcome this problem. What I did was follow the advice of this post and use the “rel” attribute with a value of “external”. Then using jQuery I’m able to search the DOM for an anchor tags that are marked and open a new window. The code is below:

<a href=”http://www.jquery.com&#8221; rel=”external”/>

$(function(){
// fix for target=”_blank”
$(“a[@rel~=’external’]”).click(function(){
window.open($(this).attr(“href”));
return false;
});
});

What this does is look for an anchor tag (A) that has a value of “external” in it’s “rel” attribute. If it finds it, it grab the value of the links “href” attribute and opens a new window to the address. Now grant it, you could do this with plain vanilla JavaScript, but jQuery makes it so much more readable.

Flash Forms are dead and thank God.

Posted in ColdFusion by rip747 on February 7, 2007

Ray has a quick and down, dirty post about how Flash Forms have become obsolete since Flex 2 is now free (to the most point anyways). I couldn’t agree more with this statement.

When CF7 was announced and included the ability to create Flash Forms, I remember everyone running out and rewriting all the forms to take advantage of them. There were some pretty sweet things people did with them, but then something happened… Flash happened. I remember trying to use one of these forms and it would just hang my browser. I’m telling you my browser would hang longer then John Holmes and crash like the Exxon Valdez. After a while I avoided blogs and web sites that used them out of fear.

Then there was the problem with no being able to upload a file with them. How could Adobe (Macromedia at the time) release a cool technology like this and hype it up, and you couldn’t do something that HTML forms have been doing for the last 15 years? Now granted this was resolved when Flash 8.0 came out, but still it was too late at that point. Even after Flash 8.0 was release, you still couldn’t count on everyone to already have it upgraded to use the form and this fix was a hack and not officially supported.

In their defense I guess the only good thing about them was that you could really get diggy with ActionScript for client side validation that was a real chore at the time with JavaScript. But now that a slew of JS frameworks have been released, this problem isn’t really a problem anymore.

So what will the next release of CF hold for our dear old red-headed step child? Personally I hope they rip them out, but you know they won’t (that backwards compatability thing). Maybe they will actually have an official fix for the file upload issue? I’ll be honest, I don’t know what they have planned and I really don’t care. May they Rest In Peace.